{"text_format":"1","workbook":"xlsx","n_sheets":5,"sheets":["Objects","Signal Paths","Control","Help","Developer Help"],"not_rendered":{"charts":0,"images":6,"macros":1,"external_links":0,"defined_names":38,"comments":0,"pivot_tables":0},"unopened":[],"bounds":{"document_bytes":16777216,"sheet_cells":100000,"rows_first":2000,"rows_last":500,"rows_between":2000,"halvings":0,"cell_chars":16384,"cell_head_chars":4096},"cells_cut":0,"cells_raw":0,"read":"whole","date_system":"1900"}

{"sheet":"Objects","index":0,"n_rows":7,"n_cols":9,"rows_kept":7,"cut":false,"hidden":false,"merged":[[0,8,0,9],[6,7,6,9],[4,4,4,5],[3,4,3,5],[3,7,3,9],[1,5,1,7]]}
[null,"[Product Model Name]",null,null,null,null,null,null,"[Date]"]
[null,"AES70 Implementation Specification",null,null,null,"Rows showing nonstandard classes are shaded."]
[null,"OBJECTS"]
[null,"OBJECT","TYPE","NON-STD","CLASS ID & VERSION",null,"OBJECT NUMBER","ROLE"]
[null,"Element",null,null,"Property ID",null,"Datatype","Max","Min"]
[]
[null,"revision 6",null,null,null,null,null,"OCA Alliance / www.oca-alliance.org"]

{"sheet":"Signal Paths","index":1,"n_rows":7,"n_cols":8,"rows_kept":7,"cut":false,"hidden":false,"merged":[[3,1,4,1],[3,2,3,4],[3,5,3,7],[6,5,6,7]]}
[null,{"$f":"hdrModelName","v":"[Product Model Name]"},null,null,null,null,null,{"$f":"hdrDateAsOf","v":"[Date]"}]
[null,"AES70 Implementation Specification"]
[null,"SIGNAL PATHS"]
[null,"INDEX","F R O M",null,null,"T O"]
[null,null,"OBJECT\nNUMBER","SOURCE PORT INDEX","PORT NAME","OBJECT\nNUMBER","SINK PORT INDEX","PORT NAME"]
[]
[null,"revision 6","","","",""]

{"sheet":"Control","index":2,"n_rows":4,"n_cols":2,"rows_kept":4,"cut":false,"hidden":false,"merged":[[3,1,3,2]]}
["Import Control"]
[]
[]
[null,"Messages"]

{"sheet":"Help","index":3,"n_rows":22,"n_cols":3,"rows_kept":22,"cut":false,"hidden":false,"merged":[[0,0,0,3]]}
["Help"]
[null,"Concept"]
[]
[null,null,"The Objects tab of this workbook lists the AES70 objects in a device, along with their significant properties, events. and methods.  By significant\", we mean elements (i.e. properties, methods, and events) liable to be useful to controllers.  These may include:"]
[]
[null,null,"- Basic functional properties, such as the \"Gain\" property of OcaGain."]
[null,null,"- Read-only properties whose read-only status should be documented."]
[null,null,"- Elements that are not implemented or partially implemented."]
[null,null,"- Elements with unusual semantics not expected by ordinary OCA controllers."]
[null,null,"- Any other elements of operational significance."]
[]
[null,null,"In addition, the Signal Paths tab of this workbook lists the device's internal signal paths that AES70 defines."]
[null,"Outline format"]
[null,null,"Even simple AES70 devices may contain many objects and elements.  This sheet uses Excel outlining features to help edit and view the documentation in manageable chunks.  Excel outlining allows expanding and collapsing blocks, sub-blocks, and element lists. "]
[null,"Showing or hiding object elements"]
[null,null,"The entries of an object's significant properties, methods, and events occupy adjacent rows immediately beneath the object's row.  Their classnames are indented one notch farther than the object's."]
[null,null,"The Show Object Elements checkbox toggles visibility of these elements. "]
[null,null,"Not all implementation charts may include object element detail.  The choice is up to the authors."]
[null,"Hexadecimal equivalents of object numbers"]
[null,null,"In displaying object numbers, some implementation charts append the hexadecimal equivalent values in square brackets.  Whether this is done is up to the authors."]
[null,"Nonstandard classes"]
[null,null,"AES70 allows manufacturers to include nonstandard classes in devices.  These classes are customized definitions of standard classes.  They are indicated by the presence of an \"X\" in the column labeled \"NONSTD\", and their rows are shaded."]

{"sheet":"Developer Help","index":4,"n_rows":47,"n_cols":3,"rows_kept":47,"cut":false,"hidden":false,"merged":[[0,0,0,3],[8,1,8,2],[3,1,3,3],[4,1,4,3]]}
["Developer Help"]
[null,"Introduction"]
[]
[null,"There are two ways of constructing an implementation chart:  manual data entry and data import.  These are described below."]
[null,"Developers may wish to delete this worksheet (\"Developer Help\") and the Control worksheet before releasing this implementation chart to the public."]
[]
[null,"Sheet 'Objects' - Manual object and element Entry"]
[]
[null,"PLEASE INSERT NEW ROWS ABOVE THE EMPTY ROW AT THE BOTTOM OF THE LIST !"]
[null,"Entering Objects"]
[null,null,"The entry of an object occupies one header row for the object itself, plus one row for each significant element.  "]
[null,null,"When entering a header row, the class name (column B) should be indented by an amount corresponding to its nesting level in the device's block tree - like this:"]
[null,null,"- The root block is indented one notch."]
[null,null,"- Objects (including blocks) immediately inside the root block are indented two notches."]
[null,null,"- Objects (including blocks) immediately inside those objects are indented three notches."]
[null,null,"- And so on."]
[null,null,"- Manager objects are indented one notch."]
[null,null,"Each object has a value of \"O\" in its TYPE column."]
[null,"Entering Elements"]
[null,null,"The entries of an object's significant elements occupy adjacent rows immediately beneath the object's row.  Their classnames are indented one notch farther than the object's."]
[]
[null,null,"The Show Elements checkbox toggles visibility of elements. "]
[null,null,"Each element has one of the following values in its TYPE column:"]
[null,null,"P   Property"]
[null,null,"R   Readonly property"]
[null,null,"M  Method"]
[null,null,"E   Event"]
[null,null,"N   Not implemented"]
[]
[null,null,"The \"N\" option is provided to allow noting the unimplemented-ness of optional elements."]
[null,"Proprietary objects and elements"]
[null,null,"To enter a proprietary object or element put an \"X\" in its 'NONSTD' column and shade the row with RGB(232,232,232)."]
[null,"Sheet 'Signal Paths' - Manual signal path entry"]
[]
[null,null,"Signal paths are entered more or less the same way objects and elements are.  Use indents for blocks and subblocks;  when done, click 'Make Outlines' on sheet 'Control' to make the Excel outline."]
[null,"Sheet 'Control'"]
[]
[null,"Data Import"]
[null,null,"This sheet contains macros to import data from .tab files created by the Bosch OCA Browser.  To import a .tab file, go to the Control worksheet and click the Import Data button.  A file dialog will appear.  Select the .tab file.  The import will proceed.  "]
[null,null,"An import operation clears all previously existing objects, elements, outlining, and titles from the 'Chart' page."]
[null,null,"If format errors are discovered in the .tab file, diagnostic messages will appear beneath the MESSAGES header on the Control page."]
[null,null,"Note:  Some versions of the Bosch OCA Browser output .tab files with the .csv extension.  To import such files, rename them to have the .tab extension."]
[null,"Outlining"]
[null,null,"The sheet's Excel outline is automatically generated, based on the outlining levels in column A.  When a new object or elements is entered, the outline level of its row is determined based on the outline level of the entry in its cell in column A.  "]
[null,null,"The Make Outlines button generates or refreshes the outlines on both the Objects and Signal Paths sheets based on all the indents.  The Clear Outlines button removes the outlines."]
[null,"Data Clearing"]
[null,null,"The Clear All button may be used at any time,  It will remove all items and outlining from the 'Objects' page and the 'Signal Paths' page, and clear all error messages from the 'Control' page.  The result is a blank implementation chart workbook identical to the initial template."]